/*
 * ================================================================================变量定义区
 */
var showCount = 10; //定义每页显示条数
var currentPage = 1;//全局变量，当前页
var getDataWay= false;//获取数据时的形式：false全查、true按条件查。
/*
 * ================================================================================页面初始化函数
 */
$(function()
{
	//获取页面类型
	var pageType = $("#pageType").val();
	//获取上次列表
	if(pageType === 'lastest'){
		getLastestListAndForm();
	}else{
		getCurrentList(currentPage);
	}
	//绑定回车事件
	document.onkeydown = function(e)
	{ 
	    var ev = document.all ? window.event : e;
		    
	    if(ev.keyCode==13) 
	    {
	    	queryData();
	    }
	};
		
	//加载datepicker插件
	$('#endDateStr').datepicker({
		dateFormat: 'yy-mm-dd'
	});
	
	
});


/*
 * ================================================================================函数定义区
 * 
 */

/**
 * 获取输入字符串的unicode长度
 * @param name 需要获取长度的内容
 * @returns {Number} 返回字符串的长度
 */
function checkStringLength(name)
{
	var totalLength = 0;
	var charCode = 0;
	
	for (var i = 0; i < name.length; i++) 
	{ 
		charCode = name.charCodeAt(i); 
		
		if (charCode < 0x007f) 
		{ 
			totalLength = totalLength + 1; 
		} 
		else if ((0x0080 <= charCode) && (charCode <= 0x07ff)) 
		{ 
			totalLength += 2; 
		}
		else if ((0x0800 <= charCode) && (charCode <= 0xffff))
		{ 
			totalLength += 3; 
		} 
	} 
	return totalLength;
}

/**
 * 判断变量是否为空
 * @param args 需要判断的变量
 */
function isNull(args)
{
	if(args==null)
	{
		return "";
	}
	else
	{
		return args;
	}
};

/**
 * 获取问卷状态
 * @param args 需要判断的变量
 */
function getStatus(args)
{
	if(args=='0')
	{
		return '草稿';
	}
	else if(args=='1')
	{
		return '投票中';
	}
	else
	{
		return '已结束';
	}
}

/**
 * 查询按钮事件 
 */
function queryData()
{
	getDataWay = true;
	chooseId = null;
	getCurrentList(1);
}


/**
 * 重置按钮事件
 */
function resetButton()
{
	var panel = $("#queryForm");
	var inputArr =  panel.find("input[type='text']");
	
	for(var i=0 ;i<inputArr.length;i++)
	{
		$(inputArr[i]).val("");
	}
	
	panel.find("select").val("");
}

/**
 * 新增按钮事件
 */
function newSurvey()
{
	$("#submitForm [name=survey_Id]").val('');
	//设置SessionStorage表单当前信息
	setUnSearchFormParam();
	$("#submitForm").submit();
}

/**
 * 复制按钮事件
 */
function copySurvey()
{
	
	//获取已选择记录的id
	var id = getSelectedRows();

	var surveyNameOld = $("#"+id).find("input[name='survey_Name']").val();

	if(!id || id.length<1)
	{
		openAlert('请选择一条记录');
		return false;
	}
	$("body").append(divmaskdialog);
	divmaskdialog.show();
	var divContent = "<div id='confirm_dialog' class='div-dialog-modal'>"
		+"<div class='modal-header'> <h3>复制投票</h3> </div>"
		+"<div class='modal-body' id='divShowMessasgeContent'><form id='surveyForm'><table>"
		+"<tr><td class='td_for_lable' style='text-align: left;'>" 
		+"SURVEY.SURVEY_NAME<span style='color:red'>&nbsp;*</span></td>"
	    +"<tr><td class='td_for_input'><input maxlength='64' type='text' required name='surveyNameNew' id='surveyNameNew' "
		+"value='"+surveyNameOld+"'/></td><tr>"
	    +"<td hidden class='td_for_input'><input type='text' /></td>"
		+"</table> </form></div>"
		+"<div class='modal-footer'>"
		+"<div class='toolButton' id='divShowBtnYes'>确定</div>" 
		+"<div class='toolButton' id='divShowMessasgeBtnNo' onclick='confirmButton(1)'>取消</div></div>"
		+"</div>";
    $("body").append(divContent);
    $("#confirm_dialog").show();
    
  //绑定事件
	$("#divShowBtnYes").bind('click',function()
	{
		copySurveySubmit();
	});
	
}

/**
 * 提交复制事件
 */

function copySurveySubmit()
{
	//定义验证规则
	var validateRules = 
	{
		rules: 
		{
			surveyNameNew: 
			{
				required:true
				//nameMaxLength:true
			}
		},
		messages: 
		{
			surveyNameNew: 
			{
				required:"请输入survey_Name"
			}
		}
	};
	var id = getSelectedRows();
	var surveyidOLd = $("#"+id).find("input[name='survey_Id']").val();
	var remarkOLd =  $("#"+id).find("input[name='remark']").val();
	var optype = "copy"; 
	
	//获取表单数据
	var createUser = $("#singleIdHidden").attr("value");
	var surveyNameNew = $("#surveyNameNew").attr("value").trim();
	
	//获取验证结果
	var validateResult = $("#surveyForm").validate(validateRules).form();
	
	if(!validateResult)
	{
		return  ;
	}else{
	
	if(surveyNameNew != ''){
		$.ajax(
				{
					type: 'post',
				    url: BASE_PATH +'/survey/surveyManagement/addOrUpdateSurvey.do?optype='+optype,
				    dataType:"json",       
				    data:
				    {
							"create_User" : createUser,
							"survey_Id"   : surveyidOLd,
							"remark"      : remarkOLd,
							"survey_Name" : surveyNameNew,					
							"optype"      : optype
					},
					success : function(data) 
					{
						if(data=='success')
						{
							openAlert('保存成功',function()
							{
								$("#confirm_dialog").remove();
						    	divmaskdialog.hide();
						    	getCurrentList(1);
							});
						}
						else
						{
							openAlert('保存失败');
						}
							
					},
					error:function(e)
					{
						openAlert('操作失败！错误信息：<div>'+e.responseText+"</div>");
					}
				});
	}
	}
	$("#confirm_dialog").remove();
	divmaskdialog.hide();

}

/**
 * 修改按钮事件
 */
function editSurvey()
{
	//获取已选择记录的id
	var id = getSelectedRows();
	
	//获取该记录对应的问卷id
	var surveyid = $("#"+id).find("input[name='survey_Id']").val();
	
	//获取问卷状态
	var status = $("#"+id).find("input[name='status']").val();
	
	if(!id || id.length<1)
	{
		openAlert('请选择一条记录');
		return false;
	}
	
	if(status!='0')
	{
		openAlert('只能修改草稿状态下的问卷！');
		return false;
	}
	$.ajax(
	{
		type: 'POST',
        url: BASE_PATH +'/survey/surveyManagement/validateCreateUser.do',
        dataType:"json",
        data:
        {
        	'survey_Id':surveyid
        },
        success:function(data)
        {
        	if(data.validateOK=='success')
        	{
        		//设置SessionStorage表单当前信息
        		setUnSearchFormParam();
        		$("#submitForm").find("input[name='survey_Id']").val(surveyid);
        		$("#submitForm").submit();
        		chooseId = null;
        	}
        	else
        	{
        		chooseId = null;
        		openAlert("非法操作！");
        	}
        },
        error: function(data)
        {
        	openAlert("链接错误");
        }
	});
}
/**
 * 删除按钮事件
 */
function deleteSurvey()
{
	var id = getSelectedRows();
	var surveyid = $("#"+id).find("input[name='survey_Id']").val();
	var status = $("#"+id).find("input[name='status']").val();
	
	if(!id || id.length<1)
	{
		openAlert('请选择一条记录');
		return false;
	}
	
	if(status!='0')
	{
		openAlert('只能删除草稿状态下的问卷！');
		return false;
	}
	
	//发送验证createUser请求
	$.ajax(
	{
		type: 'POST',
        url: BASE_PATH +'/survey/surveyManagement/validateCreateUser.do',
        dataType:"json",
        data:
        {
        	'survey_Id':surveyid
        },
        success:function(data)
        {
        	if(data.validateOK=='success')
        	{
        		openConfirm("确认删除吗？",null,function()
	        	{
        			//发送删除请求
        			$.ajax(
        			{
        				type: 'POST',
        		        url: BASE_PATH +'/survey/surveyManagement/deleteSurvey.do',
        		        dataType:"json",       
        		        contentType:"application/json;charset=UTF-8",
        				data:JSON.stringify(surveyid),
        				success : function(data) 
        				{
        					if(data=='success')
        					{
        						openAlert('删除成功',function()
        						{
        							chooseId=null;
        							getCurrentList(currentPage);
        						});
        					}
        					else
        					{
        						chooseId=null;
        						openAlert('删除失败');
        					}
        					
        				},
        				error:function(e)
        				{
        					openAlert('操作失败！错误信息：<div>'+e.responseText+"</div>");
        				}
	        		}); 
        			
	        	});
        	}
        	else
        	{
        		openAlert("非法操作！");
        	}
        },
        error: function(data)
        {
        	openAlert("链接错误");
        }
	});
}
/**
 * 发布按钮事件
 */
function releaseSurvey()
{
	var id = getSelectedRows();
	var surveyid = $("#"+id).find("input[name='survey_Id']").val();
	var end_Date = $("#"+id).find("input[name='end_Date']").val();
	
	if(!id || id.length<1)
	{
		openAlert('请选择一条记录');
		return false;
	}
	
	$.ajax(
	{
		type: 'POST',
        url: BASE_PATH +'/survey/surveyManagement/validateCreateUser.do',
        dataType:"json",
        data:
        {
        	'survey_Id':surveyid
        },
        success:function(data)
        {
        	if(data.validateOK=='success')
        	{
        		var sysDate = new Date();
        		var val = Date.parse(end_Date);
        		var endDate = new Date(val);
        		
        		if(sysDate>endDate)
        		{
        			openAlert("有效日期不能小于当前系统时间");
        			return false;
        		}
        		
        		 popUpPanel(BASE_PATH+"/survey/surveyManagement/surveyRelease/loadSurveyRelease_sitemesh_popup.do",surveyid,1000,650);
        		 chooseId = null;
        		 getCurrentList(currentPage);
        	}
        	else
        	{
        		chooseId = null;
        		openAlert("非法操作！");
        	}
        },
        error: function(data)
        {
        	openAlert("链接错误");
        }
	});
}

/**
 * 停止投票按钮事件
 */
function stopVote()
{
	var id = getSelectedRows();
	var surveyid = $("#"+id).find("input[name='survey_Id']").val();
	var status = $("#"+id).find("input[name='status']").val();
	
	if(!id || id.length<1)
	{
		openAlert('请选择一条记录');
		return false;
	}
	
	if(status!='1')
	{
		openAlert('只能对投票中状态下的问卷进行该操作！');
		return false;
	}
	
	$.ajax(
	{
		type: 'POST',
        url: BASE_PATH +'/survey/surveyManagement/validateCreateUser.do',
        dataType:"json",
        data:
        {
        	'survey_Id'           :surveyid,
        	'queryPersonInfo'     :'yes'
        },
        success:function(data)
        {
        	var temArr = new Array();
        	openConfirm('确认停止当前的投票吗？总邀请人数'+data.invitationPersonsCount+'人，已投票人数'+data.votedPersonCount+'人。', null, function() 
			{
        		$.ajax(
        		{
        			type: 'POST',
        	        url: BASE_PATH +'/survey/surveyManagement/stopVote.do',
        	        dataType:"json",
        	        data:
        	        {
    	        		'survey_Id'		:surveyid,
    	        		'status'		:'2'
        	        },
        	        success:function(data)
        	        {
        	        	if(data=="success")
        	        	{
        	        		openAlert('停止投票操作成功',function()
        	        		{
	        	        			chooseId = null;
	    							getCurrentList(currentPage);
        	        		});
        	        	}
        	        	
        	        },
        	        error: function(data)
        	        {
        	        	openAlert("链接错误");
        	        }
        		});
        	}
        	, temArr);
        },
        error: function(data)
        {
        	openAlert("链接错误");
        }
	});
}

/**
 *预览按钮事件 
 */
function previewSurvey()
{
	var id = getSelectedRows();
	var survey_Id = $("#"+id).find("input[name='survey_Id']").val();
	
	if(!id || id.length<1)
	{
		openAlert('请选择一条记录');
		return false;
	}
	
	//提交表单参数
	$("#viewSurvey").find("input[name='surveyId']").val(survey_Id);
	$("#viewSurvey").find("input[name='thisType']").val("past");
	//设置SessionStorage表单当前信息
	setUnSearchFormParam();
	$("#viewSurvey").submit();
}

/**
 * 查看结果按钮事件
 */
function viewResult()
{
	var id = getSelectedRows();
	var surveyid = $("#"+id).find("input[name='survey_Id']").val();
	var status = $("#"+id).find("input[name='status']").val();
	
	if(!id || id.length<1)
	{
		openAlert('请选择一条记录');
		return false;
	}
	
	if(status =='0')
	{
		openAlert('问卷未发布，不能查看结果');
		return false;
	}
	
	//设置SessionStorage表单当前信息
	setUnSearchFormParam();
	//提交表单参数
	$("#viewResult").find("input[name='survetyId']").val(surveyid);
	$("#viewResult").submit();
}

/**
 * 点击去编辑问题页面的事件
 */
function toEditQuestion() 
{
	var id = getSelectedRows();
	
	if(!id || id.length<1)
	{
		openAlert('请选择一条记录！');
		return false;
	}
	
	var title = $("#"+id).find("td[title='草稿']").html();
	
	if( title!="草稿")
	{
		openAlert('只能编辑草稿！');
		return false;
	}
	
	var surveyId = $("#"+id).find("input").val();
	//设置SessionStorage表单当前信息
	setUnSearchFormParam();
	$("#viewQuestionEdit").find("input[name='surveyId']").val(surveyId);
	$("#viewQuestionEdit").submit();
}

/**
 * 发送邮件
 */
function popupEmail()
{
	var id = getSelectedRows();
	var surveyId = $("#"+id).find("input[name='survey_Id']").val();
	var surveyName = $("#"+id).find("input[name='survey_Name']").val();
	var status = $("#"+id).find("input[name='status']").val();
	var param=new Array;
	param.push(surveyId);
	param.push(surveyName);
	param.push(status);
	param.push(window);
	if(!id||id.length<1)
	{
		openAlert("请选择一条记录");
		return false;
	}
	
	if(status=='0')
	{
		openAlert("草稿类型的问卷不能发送邮件！");
		return false;
	}
	//设置SessionStorage表单当前信息
	setUnSearchFormParam();
	popUpPanel( BASE_PATH+"/survey/surveyManagement/surveyEmail/popupEmail_sitemesh_popup.do", param,1000,570 );
	getLastestListAndForm();
}
/**
 * 获取当前请求列表
 */
function getCurrentList(pageIndex){
	//获取查询参数
	var createUser = $("#singleIdHidden").attr("value").trim();
	var surveyName = $("#surveyName").val().trim().toUpperCase();
	var status = $("#status").val().trim();
	var endDateStr = $("#endDateStr").val().trim();
	//绑定onchange事件
	$("input[type='text']").change(function()
		{
			$("#queryForm").find("input[name='totalResult']").val(0);
		});
	var param = {
        "showCount"     :showCount,
        "currentPage"   :pageIndex,
        "create_User"   :createUser,
        "survey_Name"   :surveyName,
        "status"        :status,
        "end_Date"      :endDateStr,
        "query_condition_field_list" :"create_User,survey_Name,status,end_Date"
    };
	getDataList(param);
	//向SessionStorage存储数据
	SessionStorage.setSearchParam({
		formParam: {
			surveyName: surveyName,
				status: status,
			endDateStr: endDateStr
		},
		searchParam: param
	});
}
/**
 * 获取最近一次的列表
 * 从SessionStorage中获取参数
 */
function getLastestListAndForm(){
	//获取参数
	var param = SessionStorage.getSearchParam(),
		//表单参数
		formParam = param.formParam,
		//搜索参数
		searchParam = param.searchParam;
	//表单渲染
	//问卷名称
	$("#surveyName").val(formParam.surveyName);
	//问卷状态
	$("#status").val(formParam.status);
	//截止时间
	$("#endDateStr").val(formParam.endDateStr);
	//列表获取
	getDataList(searchParam);
	//向SessionStorage存储数据
	SessionStorage.setSearchParam({
		formParam: formParam,
		searchParam: searchParam
	});
}
/**
 * 获取列表
 * @param param 列表参数
 */
function getDataList(param){
	//发送查询请求
	$.ajax(
	{
		type: 'POST',
	    url: BASE_PATH +'/survey/surveyManagement/listPageData.do',
	    dataType:"json",
	    data: param,
	    cache:false,
	    success:function(data,textStatus)
	    {
	        var html = "";        	
	        var pageData = data;
	        var totalResult = pageData.queryParam.totalResult;
	        	
	        if(pageData.queryResult != null)
	        {
        		//解析data, 组装成html
	        	$.each(pageData.queryResult,function(i,n)
		        {	
	        			n.survey_Name = switcHtml(n.survey_Name);
	        			n.survey_Name = n.survey_Name.replace(/ /g, "&nbsp;");
		        		html += '<tr onclick="chooseRow(this,false);"  id="tr_index_'+i+'">';
		        		html += '<input type="hidden" size=0 name="survey_Id" value="'+n.survey_Id+'"/>';
		        		html += '<input type="hidden" size=0 name="status" value="'+n.status+'"/>';
		        		html += '<input type="hidden" size=0 name="remark" value="'+switcHtml(isNull(n.remark))+'"/>';
		        		html += '<input type="hidden" size=0 name="survey_Name" value="'+n.survey_Name+'"/>';
		        		html += '<input type="hidden" size=0 name="end_Date" value="'+n.end_Date+'"/>';
		        		html += '<td title='+ n.survey_Name +'>'+n.survey_Name + '</td>';  
		        		html += '<td title='+getStatus(n.status)+'>'+getStatus(n.status)+'</td>';
		        		html += '<td style="width: 220px;"   title='+ switcHtml(isNull(n.remark))+'>' + switcHtml(isNull(n.remark))+'</td>'; 
		        		html += '<td style="text-align: center;" title='+ isNull(n.end_Date)+'>' +isNull(n.end_Date)+'</td>';
		        		html += '<td style="text-align: center;" title='+isNull(n.create_Time)+'>'+isNull(n.create_Time)+'</td>';  
		        		html += '<td style="text-align: center;" title='+isNull(n.last_Modify_Time)+'>'+isNull(n.last_Modify_Time)+'</td>';
		        		html += '<td style="width: 1px;   title=""></td></tr>';
		        });  
	        } 
        	else
        	{
        		html = '<tr><td colspan="2">No items.</td></tr>';
        	}
        	
        	$('#tBodyList').html(html);
        	//当前页重新赋值
        	currentPage = param.currentPage;
        	if(totalResult == 0)
        	{
        		$('#tBodyList').html('<tr><td style="text-align:center;">No items.</td></tr>');
        		$("#pagination").hide();
        	} 
        	else 
        	{
        		// 创建分页
        		$("#pagination").show();
        		$("#pagination").pagination(totalResult, 
        		{
        			num_edge_entries: 1, //边缘页数
        			num_display_entries: 3, //主体页数
        			current_page:currentPage,
        			callback: pageListCallback,
        			items_per_page:showCount //每页显示1项
        		});
        	}
        	chooseId= null;
        },
		error:function(e)
		{
			openAlert("加载数据错误！"); 
			 return;
		}
	});
}
/**
 * 分页数据回调函数
 * @param pageIndex 请求页
 */
function pageListCallback(pageIndex){
	getCurrentList(pageIndex);
}
/*
 * 设置未进行搜索的表单信息
 */
function setUnSearchFormParam(){
	//获取参数
	var param = SessionStorage.getSearchParam();
	//设置表单参数
	param.formParam ={
		//问卷名称
		surveyName:$("#surveyName").val(),
		//问卷状态
		status:$("#status").val(),
		//截止时间
		endDateStr:$("#endDateStr").val()
	} ;
	//重置SessionStrage数据
	SessionStorage.setSearchParam(param);
}